package com.h117121.fashionshop.validator;

import org.springframework.validation.Errors;
import org.springframework.validation.Validator;

import com.h117121.fashionshop.core.dom.Account;
import com.h117121.fashionshop.core.tool.Utils;

public class UpdateAccountValidator implements Validator {
	@SuppressWarnings("rawtypes")
	@Override
	public boolean supports(Class clazz) {
		return Account.class.isAssignableFrom(clazz);
	}

	@Override
	public void validate(Object target, Errors errors) {
		Account account = (Account) target;
		if (!Utils.isNullOrEmpty(account.getUserPassword())
				&& account.getUserPassword().length() < 4) {
			errors.rejectValue("userPassword", "tooshort.userPassword",
					"Mật khẩu tối thiểu phải 4 ký tự");
		} else {
			if (!Utils.isNullOrEmpty(account.getUserPassword())) {
				if (!account.getUserPassword().equals(
						account.getConfirmPassword())) {
					errors.rejectValue("confirmPassword",
							"notmatch.confirmPassword",
							"Mật khẩu bạn nhập không khớp");
				}
			}
		}

		if (account.getBirthday() == null) {
			errors.rejectValue("birthday", "required.birthday",
					"Vui lòng nhập ngày sinh");
		} else {

			if ((System.currentTimeMillis() - account.getBirthday().getTime())
					/ (1000 * 60 * 60 * 24) < 1) {
				errors.rejectValue("birthday", "invalid.birthday",
						"Ngày sinh không hợp lệ");
			}
		}

	}
}
